package com.link.base.base.wechat.service;

import com.link.base.base.accnt.model.Account;
import com.link.base.base.coupons.model.Coupons;
import com.link.base.wechat.mpnews.model.Article;
import com.link.base.wechat.mpnews.model.NewsItem;
import com.link.base.wechat.wxcard.model.AdvancedInfo;
import com.link.base.wechat.wxcard.model.BaseInfo;
import com.link.core.basic.service.BasicService;

import java.util.List;
import java.util.Map;

/**
 * 微信公众号图文素材Service
 *
 * @author lujiang
 * @date 2019/02/26 11:00
 */
public interface ArticlesService extends BasicService<Article> {
    /**
     * 删除永久图文素材
     *
     * @author 路江
     * @param accessToken token
     * @param mediaId     素材id
     * @return
     * @throws Exception
     */
    public Map<String, Object> deletePermanentMaterial(String accessToken, String mediaId) throws Exception;

    /**
     * 获取创建微信卡卷所需的基本信息
     *
     * @param wxCoupon pc端优惠券的实体
     * @return
     * @throws Exception
     */
    public BaseInfo getBaseInfo(Coupons wxCoupon) throws Exception;

    /**
     * 获取创建微信卡卷所需的高级信息
     *
     * @author 路江
     * @param wxCoupon pc端优惠券的实体
     * @return
     * @throws Exception
     */
    public AdvancedInfo getAdvancedInfo(Coupons wxCoupon) throws Exception;

    /**
     * 得到创建微信卡卷所需特定格式的Map
     *
     * @author 路江
     * @param wxCoupon      pc端优惠券的实体
     * @param baseInfo     基本信息
     * @param advancedInfo 高级信息
     * @return
     * @throws Exception
     */
    public Map<String, Object> getMap(Coupons wxCoupon, BaseInfo baseInfo, AdvancedInfo advancedInfo) throws Exception;


    /**
     * 同步卡卷到微信服务器
     * @author 路江
     * @param wxCoupon
     * @return
     */
    public Map<String, Object> createWxCard(Coupons wxCoupon);

    /**
     * 查询图文消息列表（多图文只显示第一条）
     *
     * @author 路江
     * @param entity
     * @return
     * @throws Exception
     */
    List<Article> queryByArticlesByExamplePage(Article entity) throws Exception;

    /**
     * Total查询图文（多图文只显示第一条）
     *
     * @author 路江
     * @param entity
     * @return 数量
     * @throws Exception
     */
    int getCount(Article entity) throws Exception;

    /**
     * 根据OpenID列表群发
     *
     * @author 路江
     * @param articles
     * @return
     */
    Map<String,Object> sendArticles(Article articles) throws Exception;

    /**
     * 查询满足发送图文条件的客户
     *
     * @author 路江
     * @param account
     * @return
     * @throws Exception
     */
    Map<String,Object> queryAccountListByExamplePage(Account account) throws Exception;

    /**
     * 获取图文路径
     *
     * @author 路江
     * @param jsonObject
     * @param appid
     * @return
     * @throws Exception
     */
    List<NewsItem> getArticlesUrl(String jsonObject, String appid) throws Exception;

    /**
     * 批量修改图文消息
     *
     * @author lujiang
     * @param  list  图文对象集合
     * @return
     * @throws Exception
     */
    Map<String,Object> updateArticlesList(List<Article> list) throws Exception;

    /**
     * 新增图文素材并同步至微信服务器
     *
     * @author lujiang
     * @date 2019/02/26 9:47
     * @param entitys 图文对象集合
     * @return
     * @throws Exception
     */
    Map<String,Object> insertArticlesList(List<Article> entitys) throws Exception;

    /**
     * 删除图文素材
     *
     * @author lujiang
     * @date 2019/02/26 9:47
     * @param entity 图文对象
     * @return
     * @throws Exception
     */
    Map<String,Object> deleteArticles(Article entity) throws Exception;

    /**
     * 查询图文详情
     *
     * @author lujiang
     * @date 2019-05-30
     * @param article
     * @return
     * @throws Exception
     */
    List<Article> queryByGroupId(Article article) throws Exception;
}
